
C	Created: Friday, June 21, 1991 at 5:09 pm
C	Processes.f
C	Fortran Interface to the Macintosh Libraries

C		Copyright Apple Computer, Inc.	1989-1990
C		All rights reserved
!!IFC (.NOT. UsingIncludes)
!!I ZEROINC.F
!!ENDC
!!IFC (.NOT. GOTTypes)
!!I Types.f
!!ENDC
!!IFC (.NOT. GOTEvents)
!!I Events.f
!!ENDC
!!IFC (.NOT. GOTFiles)
!!I Files.f
!!ENDC

!!IFC (.NOT. GOTProcesses)


	STRUCTURE /ProcessSerialNumber/
		Integer*4 highLongOfPSN
		Integer*4 lowLongOfPSN
	END STRUCTURE
	STRUCTURE /ProcessSerialNumberPtr/
		POINTER /ProcessSerialNumber/ P
	END STRUCTURE



	INTEGER*2 kNoProcess
	PARAMETER(kNoProcess = 0)
	INTEGER*2 kSystemProcess
	PARAMETER(kSystemProcess = 1)
	INTEGER*2 kCurrentProcess
	PARAMETER(kCurrentProcess = 2)
	INTEGER*2 launchContinue
	PARAMETER(launchContinue = $4000)
	INTEGER*2 launchNoFileFlags
	PARAMETER(launchNoFileFlags = $0800)
	INTEGER*2 launchUseMinimum
	PARAMETER(launchUseMinimum = $0400)
	INTEGER*2 launchDontSwitch
	PARAMETER(launchDontSwitch = $0200)
	INTEGER*2 launchAllow24Bit
	PARAMETER(launchAllow24Bit = $0100)
	INTEGER*2 launchInhibitDaemon
	PARAMETER(launchInhibitDaemon = $0080)

	STRUCTURE /AppParameters/
		Record /EventRecord/ theMsgEvent
		Integer*4 eventRefCon
		Integer*4 messageLength
	END STRUCTURE
	STRUCTURE /AppParametersPtr/
		POINTER /AppParameters/ P
	END STRUCTURE
C	LaunchFlags is equivalent to Integer*2


	STRUCTURE /LaunchParamBlockRec/
		Integer*4 reserved1
		Integer*2 reserved2
		Integer*2 launchBlockID
		Integer*4 launchEPBLength
		Integer*2 launchFileFlags
		Integer*2 launchControlFlags
		Record /FSSpecPtr/ launchAppSpec
		Record /ProcessSerialNumber/ launchProcessSN
		Integer*4 launchPreferredSize
		Integer*4 launchMinimumSize
		Integer*4 launchAvailableSize
		Record /AppParametersPtr/ launchAppParameters
	END STRUCTURE
	STRUCTURE /LaunchPBPtr/
		POINTER /LaunchParamBlockRec/ P
	END STRUCTURE


	Integer*2 extendedBlock
	PARAMETER(extendedBlock = $4C43)
	Integer*2 extendedBlockLen
	PARAMETER(extendedBlockLen = 32)	!(Jsizeof(LaunchParamBlockRec) - 12)
	INTEGER*4 modeDeskAccessory
	PARAMETER(modeDeskAccessory = $00020000)
	INTEGER*4 modeMultiLaunch
	PARAMETER(modeMultiLaunch = $00010000)
	INTEGER*4 modeNeedSuspendResume
	PARAMETER(modeNeedSuspendResume = $00004000)
	INTEGER*4 modeCanBackground
	PARAMETER(modeCanBackground = $00001000)
	INTEGER*4 modeDoesActivateOnFGSwitch
	PARAMETER(modeDoesActivateOnFGSwitch = $00000800)
	INTEGER*4 modeOnlyBackground
	PARAMETER(modeOnlyBackground = $00000400)
	INTEGER*4 modeGetFrontClicks
	PARAMETER(modeGetFrontClicks = $00000200)
	INTEGER*4 modeGetAppDiedMsg
	PARAMETER(modeGetAppDiedMsg = $00000100)
	INTEGER*4 mode32BitCompatible
	PARAMETER(mode32BitCompatible = $00000080)
	INTEGER*4 modeHighLevelEventAware
	PARAMETER(modeHighLevelEventAware = $00000040)
	INTEGER*4 modeLocalAndRemoteHLEvents
	PARAMETER(modeLocalAndRemoteHLEvents = $00000020)
	INTEGER*4 modeStationeryAware
	PARAMETER(modeStationeryAware = $00000010)
	INTEGER*4 modeUseTextEditServices
	PARAMETER(modeUseTextEditServices = $00000008)

	STRUCTURE /ProcessInfoRec/
		Integer*4 processInfoLength
		Record /StringPtr/ processName
		Record /ProcessSerialNumber/ processNumber
		Integer*4 processType
		Record /OSType/ processSignature
		Integer*4 processMode
		Pointer /Integer*1/ processLocation
		Integer*4 processSize
		Integer*4 processFreeMem
		Record /ProcessSerialNumber/ processLauncher
		Integer*4 processLaunchDate
		Integer*4 processActiveTime
		Record /FSSpecPtr/ processAppSpec
	END STRUCTURE
	STRUCTURE /ProcessInfoRecPtr/
		POINTER /ProcessInfoRec/ P
	END STRUCTURE


!!SETC GOTProcesses = .true.
!!SETC UsingIncludes = .true.

!!ENDC
